#!/usr/bin/python
# -*- coding:UTF-8 -*-
# @Time    : 2018/12/28 14:01
# @Author  : 王志鹏
# @Site    : 
# @File    : d1.py
# @Software: PyCharm
"""
备忘录模式
在不破坏封装行的前提下,捕获一个对象内部的状态,
并在该对象之外保存这个状态.这样以后就可以将该对象恢复到原先的状态

Originator(发起人):负责创建一个备忘录Memento 用已记录当期青年时刻他的内部状态,并可使用备忘录恢复内部状态Originator可以根据需求决定 Memento 存储Originator的哪些内部状态;

Memeento(备忘录): 负责存储 Originator 对象的内部状态,并可以防止Originator以外的其他对象访问 Memeento.
    备忘录有两个接口, Caretaker 只能看到备忘录的窄接口,他只能将备忘录传递给其他对象.Originator能看到一个宽接口,允许访问返回到先前状态的所需要的全部数据.

Caretaker(管理者): 负责保存好备忘录 Memeento 不能对备忘录的内容进行操作或者检查.
"""


class Originator(object):
    def __init__(self, name):
        self.name = name
        self.memeento = Memeento(self.name)

    pass


class Memeento(object):
    def __init__(self, name):
        self._name = name

    pass


class Caretaker(object):
    def __init__(self,memeento):
        self.memeento = memeento

if __name__ == '__main__':
    originator = Originator("DanBrown_01")
    print originator.name

    caretaker = Caretaker()
    print caretaker.memeento